import java.io.*;

/**
 * Created by dell on 2017/8/8.
 */
public class CopyDirectory {
    //源文件夹
    //static String url1="F:/eclipse file";
    //目标文件夹
    //static String url2="f:/s";
    public void Copy(String url1, String url2) throws IOException {
        (new File(url2)).mkdirs();
        //获取源文件目录下的文件或目录
        File[] file = (new File(url1)).listFiles();
        for (int i = 0; i < file.length; i++) {
            if (file[i].isFile()) {
                //复制文件
                copyFile(file[i], new File(url2 + File.separator + file[i].getName()));
            }
            if (file[i].isDirectory()) {
                //复制目录
                String sourceDir = url1 + File.separator + file[i].getName();
                String targetDir = url2 + File.separator + file[i].getName();
                copyDirectory(sourceDir, targetDir);
            }
        }
    }

    public static void main(String[] args) throws IOException {
        new CopyDirectory().Copy("F:\\eclipse file", "f:/s");
        //创建目标文件夹
//        (new File(url2)).mkdirs();
//        //获取源文件目录下的文件或目录
//        File[] file=(new File(url1)).listFiles();
//        for (int i=0;i<file.length;i++){
//            if(file[i].isFile()){
//                //复制文件
//                copyFile(file[i],new File(url2+File.separator+file[i].getName()));
//            }
//            if (file[i].isDirectory()){
//                //复制目录
//                String sourceDir=url1+File.separator+file[i].getName();
//                String targetDir=url2+File.separator+file[i].getName();
//                copyDirectory(sourceDir,targetDir);
//            }
    }


    public static void copyFile(File sourceFile, File targetFile) throws IOException {
        BufferedInputStream inBuff = new BufferedInputStream(new FileInputStream(sourceFile));

        BufferedOutputStream outBuff = new BufferedOutputStream(new FileOutputStream(targetFile));
        byte[] b = new byte[1024 * 5];
        int len;
        while ((len = inBuff.read(b)) != -1) {
            outBuff.write(b, 0, len);
        }
        outBuff.flush();


        outBuff.close();
        inBuff.close();
    }

    //复制文件夹
    public static void copyDirectory(String sourceDir, String targetDir) throws IOException {
        //新建目标目录
        ((new File(targetDir))).mkdirs();
        //获取源文件夹当前下的文件或目录
        File[] file = (new File(sourceDir)).listFiles();
        for (int i = 0; i < file.length; i++) {
            if (file[i].isFile()) {
                File sourceFile = file[i];
                File targetFile = new File(new File(targetDir).getAbsolutePath() + File.separator + file[i].getName());
                copyFile(sourceFile, targetFile);
            }
            if (file[i].isDirectory()) {
                String dir1 = sourceDir + "/" + file[i].getName();
                String dir2 = targetDir + "/" + file[i].getName();
                copyDirectory(dir1, dir2);
            }
        }

    }
}
